package main

import (
	_ "beegoProject17/models/auth"
	_ "beegoProject17/models/finance"
	_ "beegoProject17/models/my_center"
	_ "beegoProject17/models/news"
	_ "beegoProject17/routers"
	"beegoProject17/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.99【车辆管理模块】表关系分析
9.100【车辆管理模块】模型创建
	1. 页面增加菜单：一级菜单-车辆管理，二级菜单-车辆品牌管理/车辆列表/车辆申请/车辆审批

9.101【车辆管理模块】模型优化及表迁移
    1. 添加车辆模型 models - auth - auth.go

9.102【车辆管理模块】车辆品牌管理添加及分页功能完成
	1. 创建控制器 cars - cars_brand_controller.go/cars_apply_controller.go
	2. 编辑 cars_brand_controller.go
	3. 拷贝页面 user-list.html - cars-brand-list.html
	4. 拷贝页面 user-add.html - cars-brand-add.html
	5. 路由
	6. 修改数据库url CarBrandController.Get
	7. 修改 cars-brand-list.html 修改导航标题 33,35,45,61-68，
	8. 拷贝user_controller.go Get -> cars_brand_controller.go Get
	9. 编辑 cars_brand_controller.go Get
	10. 修改 cars-brand-list.html 68-129H，258，264
	11. 数据库添加数据(宝马，奔驰)，页面测试效果
	12. 添加ToAdd和DoAdd方法
	13. 路由
	14. cars-brand-list.html 内修改添加控制器 52H
	15. 编辑 cars-brand-add.html 修改名称字段选项，81-95H
	16. 编辑 cars_brand_controller.go DoAdd 获取数据
	17.

9.103【车辆管理模块】车辆列表分页完成
	1. 车辆列表创建cars_controller.go
	2. 拷贝
       cars-brand-add > cars-add.html
       cars-brand-list > cars-list.html
	3. 路由 数据库添加url
	4. 编辑 cars_controller.go Get
	5. 编辑 cars-list.html 修改描述和显示
	6. 数据库添加一条数据


9.104【车辆管理模块】车辆添加功能完成
	1. vars_controller.go 增加ToAdd DoAdd
	2. 路由
	3. cars-list.html 添加控制器 52H
	4. 编辑函数 ToAdd
	5. cars-add.html 修改名称，查询品牌数据49-53H, 修改获取变量85H，
	6. 编辑函数 DoAdd
	7. 页面添加数据查看是否存入数据库


9.105【车辆管理模块】车辆申请分页功能完成
	1. 编辑车辆申请 cars_apply_controller - Get
	2. 路由
	3. 拷贝页面 cars-list.html -> cars-apply-list.html
	4. 定义 Get 方法
	5. 编辑 cars-apply-list.html 修改状态判断将 is_active变更为status 81，83，80H-93H修改状态判断
	6. 编辑 cars-apply-list.html 修改查询控制器 CarsApplyController.Get
	7. 编辑 cars-apply-list.html 删除添加车辆 50-54H，删除批量勾选 58-60H，70-72H
	8.

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {

	orm.Debug = true

	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)
	logs.SetLogFuncCallDepth(3)
	beego.SetStaticPath("/upload", "upload")

	beego.Run()
}
